package com.summer.peony.system.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.summer.peony.system.pojo.SysDept;

/**
 * @ClassName: DeptService
 * @Description: TODO(部门管理业务逻辑接口层)
 * @author: TaoGe
 * @date: 2020年6月9日 下午3:50:06
 * @version: v0.0.1
 */
public interface SysDeptService {

	/**
	 * 新增部门
	 * 
	 * @param sysDept
	 * @return Integer
	 * @author: TaoGe
	 * @date: 2020年6月10日 下午3:39:11
	 * @throws:
	 */
	Integer insert(SysDept sysDept);

	/**
	 * 根据id删除部门，逻辑删除
	 * 
	 * @param deptId 部门id
	 * @return Integer
	 * @author: TaoGe
	 * @date: 2020年6月10日 下午3:40:40
	 * @throws:
	 */
	Integer deleteByPrimaryKey(Integer deptId);

	/**
	 * 修改部门信息
	 * 
	 * @param record 部门对象
	 * @return Integer
	 * @author: TaoGe
	 * @date: 2020年6月10日 下午3:43:41
	 * @throws:
	 */
	Integer updateByPrimaryKey(SysDept record);

	/**
	 * @Description: TODO(查询部门列表)
	 * @return List<SysDept>
	 * @author: TaoGe
	 * @date: 2021年1月29日 上午9:19:55
	 * @throws:
	 */
	List<SysDept> selectAllDepts();

	/**
	 * 部门名称分页查询
	 * 
	 * @param name     部门名称
	 * @param code     部门编码
	 * @param pageNum  当前为第几页
	 * @param pageSize 每页的数据行数
	 * @return PageInfo<SysDept>
	 * @author: TaoGe
	 * @date: 2020年6月29日 下午1:18:25
	 * @throws:
	 */
	PageInfo<SysDept> selectByNameDept(String name, String code, int pageNum, int pageSize);

	/**
	 * 查询单个部门
	 * 
	 * @param deptId 部门id
	 * @return SysDept
	 * @author: TaoGe
	 * @date: 2020年6月10日 下午3:45:59
	 * @throws:
	 */
	SysDept selectByPrimaryKey(Integer deptId);

	/**
	 * 查询部门层级信息
	 * 
	 * @return List<SysDept>
	 * @author: TaoGe
	 * @date: 2020年8月31日 下午3:58:42
	 * @throws:
	 */
	List<SysDept> allSysDepts();

}
